package com.example.shop_2304.utils

import android.content.Context
import com.alibaba.android.arouter.facade.Postcard
import com.alibaba.android.arouter.facade.annotation.Interceptor
import com.alibaba.android.arouter.facade.callback.InterceptorCallback
import com.alibaba.android.arouter.facade.template.IInterceptor
import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.SPUtils

/**
 * ARouter登录拦截器
 *  只能在  ARouter.getInstance().build("path").navigation()时起作用
 *  app默认启动页面不参与
 *  startActivity管不着
 */
@Interceptor(priority = 1)
class LoginInterceptor :IInterceptor{
    override fun init(context: Context?) {
        //初始化
    }
    //拦截处理操作   必须设置跳转到某个界面，不然项目就不动了（点击进行页面跳转时，没有反应）
    //需要登录的界面（默认除了登录注册外的所有界面都需要登录（隐私政策跳转会在登录注册页面上，也会不需要登录））
    //是否登录 （sp中存在token）
    override fun process(postcard: Postcard?, callback: InterceptorCallback?) {
        //不需要登录的界面和已经登录的两种情况，不需要跳转到登录界面（需要登录的页面太多了，并且我们还没写完）
        if("/app/LoginActivity".equals(postcard?.path)||"/app/WebViewActivity".equals(postcard?.path)||SPUtils
                .getInstance().getString("token").isNotEmpty()){
            //当遇到这些情况，页面不需要跳转到登录页面
            callback?.onContinue(postcard)
        }else{
            //其他界面均需要跳转到登录界面
            ARouter.getInstance().build("/app/LoginActivity").navigation()
        }
    }
}